package com.vedu.role.service;

import com.vedu.role.entity.bo.RoleBo;

import java.util.List;
import java.util.Set;

/**
 * version: 1.0
 *
 * @author yuancheng.li [create on 2018/8/15 0:36 ]
 */
public interface RoleService {

    /**
     *
     * @param userId
     * @return
     */
    List<RoleBo> findByUserId(Integer userId);

    /**
     * 创建角色(被创建角色的资源不能多于创建者的角色拥有的资源)
     * @param userId
     * @param role
     * @return
     */
    boolean createRole(Integer userId, RoleBo role);

    /**
     * 设置角色(被设置的用户的角色不能大于设置者角色的权限且设置者的角色权限不能大于设置角色的权限)
     * @param userId
     * @param targetUserId
     * @param roleIds can empty but can not be null
     * @return
     */
    boolean setUserRoles(Integer userId, Integer targetUserId, Set<Integer> roleIds);

}
